[INFO] cloning repository https://github.com/AlexBethel/cse4066-final-project
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AlexBethel/cse4066-final-project" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexBethel%2Fcse4066-final-project", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexBethel%2Fcse4066-final-project'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 494b9c553566e93b3d370f234942e7d92818c1d6
[INFO] fixing AlexBethel/cse4066-final-project against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexBethel%2Fcse4066-final-project" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/AlexBethel/cse4066-final-project
[INFO] finished tweaking git repo https://github.com/AlexBethel/cse4066-final-project
[INFO] tweaked toml for git repo https://github.com/AlexBethel/cse4066-final-project written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AlexBethel/cse4066-final-project on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AlexBethel/cse4066-final-project already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 46a8624e833ecc2cd2cb20b31f02811ff6e44e262c132333b3d2020657a7aedc
[INFO] running `Command { std: "docker" "start" "46a8624e833ecc2cd2cb20b31f02811ff6e44e262c132333b3d2020657a7aedc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "46a8624e833ecc2cd2cb20b31f02811ff6e44e262c132333b3d2020657a7aedc" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "46a8624e833ecc2cd2cb20b31f02811ff6e44e262c132333b3d2020657a7aedc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "46a8624e833ecc2cd2cb20b31f02811ff6e44e262c132333b3d2020657a7aedc" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.150
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling serde v1.0.193
[INFO] [stderr]     Checking miniz_oxide v0.7.1
[INFO] [stderr]     Checking fdeflate v0.3.1
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking getrandom v0.2.11
[INFO] [stderr]     Checking png v0.17.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling serde_derive v1.0.193
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking project v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]  --> src/random.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let rng = unsafe { &mut RNG }.get_or_insert_with(|| StdRng::from_seed([2; 32]));
[INFO] [stdout]   |                        ^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]   = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let rng = unsafe { &raw mut RNG }.get_or_insert_with(|| StdRng::from_seed([2; 32]));
[INFO] [stdout]   |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/layers/softmax.rs (1 fix)
[INFO] [stderr]        Fixed src/random.rs (1 fix)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.53s
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]  --> src/random.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let rng = unsafe { &mut RNG }.get_or_insert_with(|| StdRng::from_seed([2; 32]));
[INFO] [stdout]   |                        ^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]   = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let rng = unsafe { &raw mut RNG }.get_or_insert_with(|| StdRng::from_seed([2; 32]));
[INFO] [stdout]   |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: project v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking project v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]   --> src/layers/recompose.rs:34:60
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn backprop_input(&self, output_derivatives: &[Image], inputs: &[f64]) -> Vec<f64> {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_network` is never used
[INFO] [stdout]   --> src/main.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn generate_network() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_ae_network` is never used
[INFO] [stdout]   --> src/main.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn generate_ae_network() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `train_mnist` is never used
[INFO] [stdout]    --> src/main.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn train_mnist() {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dump_testing_data` is never used
[INFO] [stdout]    --> src/main.rs:228:4
[INFO] [stdout]     |
[INFO] [stdout] 228 | fn dump_testing_data() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `black`, `from_graph_sampler`, and `divide` are never used
[INFO] [stdout]    --> src/image.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Image {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  41 |     /// Create a new solid black image.
[INFO] [stdout]  42 |     pub fn black(xsize: usize, ysize: usize) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn from_graph_sampler(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn divide(self, x_scaler: usize, y_scaler: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers/cnn.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl CnnLayer {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 21 |     pub fn new(kernel_diameter: usize, kernel_stride: usize, n_kernels: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_loss_gradient` is never used
[INFO] [stdout]   --> src/layers/softmax.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn softmax_loss_gradient(outputs: &[f64], correct_output: usize) -> Vec<f64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers/maxpool.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl MaxpoolLayer {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 13 |     pub fn new(diameter: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `derivative` is never used
[INFO] [stdout]   --> src/layers/fully_connected.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Activation {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] 12 |     fn apply(&self, input: f64) -> f64;
[INFO] [stdout] 13 |     fn derivative(&self, input: f64) -> f64;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Relu` is never constructed
[INFO] [stdout]   --> src/layers/fully_connected.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Relu;
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeakyRelu` is never constructed
[INFO] [stdout]   --> src/layers/fully_connected.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct LeakyRelu(pub f64);
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Logistic` is never constructed
[INFO] [stdout]   --> src/layers/fully_connected.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct Logistic;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/layers/fully_connected.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<F: Activation> FullyConnectedLayer<F> {
[INFO] [stdout]     | ------------------------------------------ associated function in this implementation
[INFO] [stdout] 101 |     pub fn new(n_inputs: usize, n_outputs: usize, activation: F) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecomposeLayer` is never constructed
[INFO] [stdout]   --> src/layers/recompose.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct RecomposeLayer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers/recompose.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl RecomposeLayer {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn new(xsize: usize, ysize: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loss` is never used
[INFO] [stdout]   --> src/layers/recompose.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn loss(output: &Image, expected: &Image) -> f64 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loss_gradient` is never used
[INFO] [stdout]   --> src/layers/recompose.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn loss_gradient(output: &Image, expected: &Image) -> Image {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `backprop_self`, `backprop_input`, and `stack` are never used
[INFO] [stdout]   --> src/network.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait NeuralNetwork {
[INFO] [stdout]    |           ------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn backprop_self(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn backprop_input(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn stack<O: NeuralNetwork<InputElem = Self::OutputElem>>(
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cartesian_product` is never used
[INFO] [stdout]   --> src/network.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn cartesian_product<T, U>(left: T, right: U) -> impl Iterator<Item = (T::Item, U::Item)>
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ngon_flat` is never used
[INFO] [stdout]  --> src/polygon.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn ngon_flat(xsize: usize, ysize: usize, vertices: &[(f64, f64)]) -> Image {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ngon_regular` is never used
[INFO] [stdout]   --> src/polygon.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn ngon_regular(xsize: usize, ysize: usize, n_vertices: u32, angle_offset: f64) -> Image {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Edges` is never constructed
[INFO] [stdout]   --> src/polygon.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct Edges<'a> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/polygon.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<'a> Edges<'a> {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 48 |     pub fn new(vertices: &'a [(f64, f64)]) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RNG` is never used
[INFO] [stdout]  --> src/random.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | static mut RNG: Option<StdRng> = None;
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random` is never used
[INFO] [stdout]  --> src/random.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn random<T>() -> T
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]  --> src/random.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let rng = unsafe { &mut RNG }.get_or_insert_with(|| StdRng::from_seed([2; 32]));
[INFO] [stdout]   |                        ^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]   = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let rng = unsafe { &raw mut RNG }.get_or_insert_with(|| StdRng::from_seed([2; 32]));
[INFO] [stdout]   |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]   --> src/layers/recompose.rs:34:60
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn backprop_input(&self, output_derivatives: &[Image], inputs: &[f64]) -> Vec<f64> {
[INFO] [stdout]    |                                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `project` (bin "project" test) due to 1 previous error; 26 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: function `generate_network` is never used
[INFO] [stdout]   --> src/main.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn generate_network() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_ae_network` is never used
[INFO] [stdout]   --> src/main.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn generate_ae_network() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `train_mnist` is never used
[INFO] [stdout]    --> src/main.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn train_mnist() {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dump_testing_data` is never used
[INFO] [stdout]    --> src/main.rs:228:4
[INFO] [stdout]     |
[INFO] [stdout] 228 | fn dump_testing_data() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `black`, `from_graph_sampler`, and `divide` are never used
[INFO] [stdout]    --> src/image.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Image {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  41 |     /// Create a new solid black image.
[INFO] [stdout]  42 |     pub fn black(xsize: usize, ysize: usize) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn from_graph_sampler(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn divide(self, x_scaler: usize, y_scaler: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers/cnn.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl CnnLayer {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 21 |     pub fn new(kernel_diameter: usize, kernel_stride: usize, n_kernels: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_loss_gradient` is never used
[INFO] [stdout]   --> src/layers/softmax.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn softmax_loss_gradient(outputs: &[f64], correct_output: usize) -> Vec<f64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers/maxpool.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl MaxpoolLayer {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 13 |     pub fn new(diameter: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `derivative` is never used
[INFO] [stdout]   --> src/layers/fully_connected.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Activation {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] 12 |     fn apply(&self, input: f64) -> f64;
[INFO] [stdout] 13 |     fn derivative(&self, input: f64) -> f64;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Relu` is never constructed
[INFO] [stdout]   --> src/layers/fully_connected.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Relu;
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeakyRelu` is never constructed
[INFO] [stdout]   --> src/layers/fully_connected.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct LeakyRelu(pub f64);
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Logistic` is never constructed
[INFO] [stdout]   --> src/layers/fully_connected.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct Logistic;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/layers/fully_connected.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<F: Activation> FullyConnectedLayer<F> {
[INFO] [stdout]     | ------------------------------------------ associated function in this implementation
[INFO] [stdout] 101 |     pub fn new(n_inputs: usize, n_outputs: usize, activation: F) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecomposeLayer` is never constructed
[INFO] [stdout]   --> src/layers/recompose.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct RecomposeLayer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/layers/recompose.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl RecomposeLayer {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn new(xsize: usize, ysize: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loss` is never used
[INFO] [stdout]   --> src/layers/recompose.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn loss(output: &Image, expected: &Image) -> f64 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loss_gradient` is never used
[INFO] [stdout]   --> src/layers/recompose.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn loss_gradient(output: &Image, expected: &Image) -> Image {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `backprop_self`, `backprop_input`, and `stack` are never used
[INFO] [stdout]   --> src/network.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait NeuralNetwork {
[INFO] [stdout]    |           ------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn backprop_self(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn backprop_input(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn stack<O: NeuralNetwork<InputElem = Self::OutputElem>>(
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cartesian_product` is never used
[INFO] [stdout]   --> src/network.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn cartesian_product<T, U>(left: T, right: U) -> impl Iterator<Item = (T::Item, U::Item)>
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ngon_flat` is never used
[INFO] [stdout]  --> src/polygon.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn ngon_flat(xsize: usize, ysize: usize, vertices: &[(f64, f64)]) -> Image {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ngon_regular` is never used
[INFO] [stdout]   --> src/polygon.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn ngon_regular(xsize: usize, ysize: usize, n_vertices: u32, angle_offset: f64) -> Image {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Edges` is never constructed
[INFO] [stdout]   --> src/polygon.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct Edges<'a> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/polygon.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<'a> Edges<'a> {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 48 |     pub fn new(vertices: &'a [(f64, f64)]) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RNG` is never used
[INFO] [stdout]  --> src/random.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | static mut RNG: Option<StdRng> = None;
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random` is never used
[INFO] [stdout]  --> src/random.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn random<T>() -> T
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]  --> src/random.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let rng = unsafe { &mut RNG }.get_or_insert_with(|| StdRng::from_seed([2; 32]));
[INFO] [stdout]   |                        ^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]   = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let rng = unsafe { &raw mut RNG }.get_or_insert_with(|| StdRng::from_seed([2; 32]));
[INFO] [stdout]   |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `project` (bin "project") due to 1 previous error; 26 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "46a8624e833ecc2cd2cb20b31f02811ff6e44e262c132333b3d2020657a7aedc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "46a8624e833ecc2cd2cb20b31f02811ff6e44e262c132333b3d2020657a7aedc", kill_on_drop: false }`
[INFO] [stdout] 46a8624e833ecc2cd2cb20b31f02811ff6e44e262c132333b3d2020657a7aedc
